When a new software application is to be deployed in an organization it is essential that the application conform to the business environment of the organization. This is particularly critical when the software application supports one or more business processes of the organization and therefore must include various checks and steps needed to provide results for proper business controls as well as operate reliably with high quality.
Techniques and processes as described below have been developed for addressing this problem, primarily directed to the software quality and reliability requirement. However, no satisfactory solution has heretofore been found which addresses the business control and software quality concerns. Post installation audits in particular by their very nature are applied after an application is operational and therefore are not effective during a pre-installation certification.
Belfer et al. in U.S. Pat. No. 5,045,994 describe a method of testing application software using an emulation environment. A user can call sequences of input-output screen pairs used to submit and receive information to/from the application. The screens are prepared offline. An input screen has actual input information for the application. A corresponding output screen has the expected results. The expected results are compared to the actual results received after running the application using the input information in the input screen.
Gil describes in U.S. Pat. No. 5,500,941 a method of performing software validation testing on large electronic systems to determine the quality of the software within the large system. A plurality of stimuli are defined to cause the software to transition from one state to another. The responses to the stimuli are identified and the probabilities of occurrence of the state transitions are calculated. A usage model is built from a plurality of usage cases, where each usage case is identified as comprising a set of state transitions. The probability of occurrence of each usage case is also calculated. A usage profile is built listing the usage cases in order of descending probability. An automated test program is compiled from the usage profile, the stimuli, and the responses. The test program is then executed on the software system to analyze and report the software quality.
H. Sassenburg in a paper entitled “How to sustain (S) PI? assessing readiness for (software) process improvement,” presented at the SPI 95 European Conference on Software Process Improvement, Barcelona Spain, December 1995 states in the abstract that the Capability Maturity Model has led to software process improvement programs. However, most such programs are quietly terminated. A checklist for determining where weak points exist in the program can be used to increase the probability of the program succeeding.
European patent EP989713 describes a use for certified software. EP997807 describes a method of certifying transmission of software. Japanese patent JP11025053A determines the certification of a person through use of an IC card. PCT patent WO9834365 describes a method of distributing certified software. PCT patent WO 200010283 describes a method of controlling access to video and audio content by determining whether the BIOS and operating system is certified for access.
All of the above described patents are incorporated herein by reference.
Despite these developments a satisfactory process for certifying software applications to be deployed in a business is still needed.
Therefore, in accordance with the teachings of the present invention there is provided an improved process for certifying software applications prior to their deployment in a business. It is believed that such a process would constitute a significant advancement in the art.